1. Field of the Invention
The present invention relates to a disk storage system for performing control for positioning a head, used to record/reproduce data, at a designated position on a disk on the basis of servo data recorded on a plurality of servo areas set on the disk and, more particularly, a data sector control apparatus and method for a disk storage system designed to access a disk in units of sectors.
2. Description of the Related Art
In a disk recording/reproducing apparatus such as a hard disk drive (HDD), data is recorded/reproduced on/from a surface of a disk as a recording medium by a head. As shown in FIG. 30, a large number of tracks TR are formed on a disk 2 in the radial direction, and each track TR is divided into a plurality of sectors DS. In general, the upper and lower surfaces of one or plurality of disks 2 used in an HDD are used as data surfaces. Therefore, a plurality of tracks TR in the same axial direction are handled by the concept of a cylinder CL.
Each sector DS is roughly constituted by an ID area and a user data area. In addition, in an HDD of a sector servo scheme, a servo area SA on which servo data is recorded is set at the start portion of each sector DS. The servo area SA is radially recorded on the disk 2 for each sector DS of all the tracks TR (cylinders CL).
The servo area SA is an area used for positioning control of the head, and has a cylinder address code area SAe and a burst pattern area SAg, as shown in FIG. 29A. The servo system of the HDD executes seek control for moving the head to a target cylinder (target track) on the basis of a cylinder address code (track address code) reproduced from the cylinder address code area SAe by the head. When the head reaches the target cylinder, the servo system executes track following control for positioning the head to the center of the target cylinder on the basis of burst data (position data) reproduced from the burst pattern area SAg.
In addition to the above areas, the servo area SA includes an AGC area SAa, erase areas SAb and SAi, SYNC areas SAc, SAf, and SAh, and a sector/index area SAd. As shown in FIGS. 29B and 29C, the sector/index area SAd is an area in which a signal pattern for generating a servo sector pulse SSP or a servo index pulse SIP is recorded. The servo sector pulse SSP is a pulse output for each servo area SA. The servo index pulse SIP is a pulse serving as a reference point of the cylinder CL. This pulse is output only at a specific position (the start position of each track).
As shown in FIG. 28, the ID area of each sector DS has a PLL SYNC area DSa, a SYNC byte area DSb, a cylinder code (higher byte) area DSc, a cylinder code (lower byte) area DSd, a head number area DSe, a sector number area DSf, a flag byte area DSg, and a CRC byte area DSh.
A user data area DSi for recording user data follows the ID area. An ECC area DSj in which an ECC (error checking and correction) code is recorded is set after the user data area DSi. The ECC code is used for error detection and correction processing in reading data from the user data area DSi.
The PLL SYNC area DSa is an area for establishing synchronization with a data discrimination window before read-access to the ID area. On this area, a synchronization pattern having a predetermined frequency is recorded. The SYNC byte area DSb is an area in which information for establishing synchronization to demodulates an NRZ (non return to zero) code signal input upon establishment of synchronization in the PLL SYNC area DSa is recorded for each byte. In the HDD, read data reproduced by the head is converted into an NRZ code.
A cylinder code area is an area on which a cylinder address (cylinder number) corresponding to the sector DS is recorded. The higher eight bits of the cylinder address are recorded in the higher byte area DSc; and the lower eight bits, in the lower byte area DSd. The head number area DSe is an area in which a head number (byte) to be selected when the sector DS is accessed is recorded. In the sector number area DSf, a sector number (byte) for identifying the sector DS is recorded. The flag byte area DSg is an area for recording flag information or the like when an error is caused in the user data area DSi of the sector DS. The CRC byte area DSh is an area for recording a CRC (cyclic redundancy check) code for verifying the contents of a cylinder code, a head number, a sector number, and flag information when they are read.
Recently, an HDD of a CDR (constant density recording) scheme has been developed to realize a high data recording density. In the CDR scheme, as shown in FIG. 27, a disk 2 is divided into a plurality of zones (six zones Z1 to Z6 in this case for the sake of convenience) in the radial direction, and each zone includes several tens to several hundreds cylinders (tracks).
According to the sector arrangement of the CDR scheme, the recording density is made almost constant with respect to the estimated physical length of the circumference of each cylinder, and different data transfer rates are set for the respective zones.
Servo areas SA (seven areas SA0 to SA7 in this case) are radially recorded over the respective zones on the disk 2. Therefore, the servo area SA is not necessarily located at the start portion of each sector. For example, in the zone Z1, the servo area SA0 is located at the start portion of the data sector DS0, whereas the servo area SA1 is located in front of a portion of the data sector DS3.
In other words, in the CDR scheme, the servo area SA is handled by the concepts of a reference servo sector and the data sectors DS included in each servo sector. In general, a plurality of data sectors DS having consecutive sector numbers are included by each servo sector. As shown in FIG. 27, for example, in the servo areas SA0 and SA1, the data sector DS3 having sector number 3 may be divided into portions and included in the respective servo areas SA0 and SA1. In addition, the ID areas of the respective data sectors differ in position between the respective zones.
In the HDD, when the head is positioned at a target cylinder on the basis of servo data, a read operation of reading ID information from the ID area of a designated sector to access the sector. In this read operation, when a predetermined voltage is detected in a read signal from the head within a predetermined period of time, it is determined that information "1" is read.
More specifically, as shown in FIG. 24A, a read signal which exceeds a predetermined slice level (qSL) for a predetermined period of time is detected as information "1". In this case, if a data discrimination window is synchronous with magnetic recording on the disk 2, proper information can be detected from the read signal. If, however, the data discrimination window is not synchronous with magnetic recording on the disk 2, as shown in FIG. 24B, erroneous information is detected from the same read signal. As shown in FIG. 28, the PLL SYNC area DSa is set to establish synchronization between the data discrimination window and magnetic recording.
Servo data like the one shown in FIG. 29A is recorded on each servo area SA. As shown in FIG. 26, a cylinder address code and a burst pattern are recorded, as magnetic patterns, for each cylinder.
In the HDD of the CDR scheme described above, as shown in FIG. 25A, a plurality of data sectors DS are present between the servo areas SA, and one of the data sectors may include only a portion of a data area. The HDD outputs the servo sector pulse SSP (or the servo index pulse SIP) at the read timing of the servo area SA, and outputs a data sector pulse DSP at the read timing of the data sector ID.
In the HDD, as shown in FIG. 29A, gain adjustment of the circuit is performed in the AGC area SAa of the servo area to adjust the amplitude of an output signal to be constant. The SYNC area SAc is then detected upon detection of the erase area SAb, thereby completing preparation for a servo data read operation. The start position of a servo data operation is a position called a start bit immediately after the SYNC area SAc. Synchronization of the circuit is established by using this start bit, and the servo sector pulse SSP or the servo index pulse SIP is output in accordance with the pattern of the sector/index area SAd following the start bit.
A cylinder address code (cylinder code) is generally recorded by a coding scheme using gray codes. A gray code is a binary code designed such that when consecutive numerical values are expressed in binary notation, the adjacent binary values are different from each other by only one bit. More specifically, for example, decimal numbers "6", "7", and "8" are expressed as gray codes "00101", "00100", and "01100". As a general mathematical expression, an ith bit Gi of a gray code is "Gi=Bi XOR Bi+1", where Bi and Bi+1 are the ith and (i+1)th bits obtained when a decimal number is converted into a binary number, and XOR indicates exclusive OR processing.
With the use of Such a gray code, although a cylinder address code is accessed when the head is to be moved to a target cylinder, the difference between read data can be set within one cylinder. More specifically, as shown in FIG. 23A when the head crosses cylinder "n+2" and cylinder "n+1", the same cylinder address code as that obtained when the head is located over a cylinder n is read.
Referring to FIG. 23A, a cylinder address code is recorded, as a gray code, in the cylinder address code area SAe. In addition, a position signal (burst data) for detecting a position shift amount with respect to the center of the target cylinder on the basis of the amplitude of an output signal is recorded in the burst pattern area SAg.
FIG. 23B shows the actual recorded state of a cylinder code converted into a gray code. In this case, when a signal is output in the area of the next data discrimination window after a clock bit (CLK) is generated, the corresponding pattern is recognized as information "1". In contrast to this, when no signal is output in the area of the next data discrimination window, but a signal is output in the next area, the corresponding pattern is recognized as information "0".
In the conventional HDDs including the HDD of the CDR scheme, when designated data on the disk 2 is to be accessed, the ID information of an ID area is referred to first. When the corresponding sector is recognized as a target sector in accordance with this ID information, access to the data area following the ID area is executed. In this case, if access is not performed from the start position of the ID area, the ID information of the ID area cannot be read.
An HDD disk of the CDR scheme is disadvantageous, however. It is necessary to provide an ID area for each data sector on the disk 2. The area which the disk 2 has to store user data is inevitably reduced by the sum of the ID areas provided for the data sectors formed on the disk 2.
As shown in FIG. 28, if, for example, access is started from the cylinder code area DSd, since synchronization on the circuit cannot be established by using the PLL SYNC area DSa, synchronization between the data discrimination window and magnetic recording cannot be established. For this reason, as shown in FIG. 25C, the data sector pulse DSP must be generated to detect the start position of a data sector, thereby reliably accessing the data. As a scheme of detecting the first position of a data sector, a scheme is available, in which specific information called an address mark is recorded on the disk 2 in advance, and the start position of the data sector is determined in accordance with detection of this specific information. In this scheme, however, an area for recording an address mark must be prepared on the disk 2. Therefore, the data recording area is reduced by the address mark area.
According to another scheme, a count operation is started at the moment when a servo index pulse for a servo area is generated, and the position of the servo area is specified by a number corresponding to the count value, thereby determining the start position of a data sector. In this scheme, however, if servo sector pulses are not consecutively generated, a count operation cannot be accurately performed. In general, if servo sector pulses are not consecutively generated within a timer interval 1.2 times the time interval for generation of servo sector pulses, it is determined that pulse omission has occurred for some reason. Even if, for example, a servo pulse is generated after five pulses are consecutively omitted, the corresponding position cannot be accurately specified. This is because there is an error in the general time interval for generation of pulses. If, for example, a pulse is generated immediately after omission of five consecutive pulses is measured, the number of consecutively omitted pulses in the actual measurement time is five. In practice, however, the generated pulse corresponds to the sixth pulse from the position where the pulse omission has started. Therefore, an error may be caused in a simple count operation.
In addition, when a head switching operation is executed, counting of a servo number may be erroneously performed depending on the head switching timing. This is because the positions, on the upper and lower surfaces of the disk 2, where servo data are recorded may not coincide with each other. More specifically, as shown in FIG. 22, assume that a head 1a corresponds to side A of the data surfaces of the disk 2, and a head 1b corresponds to side B of the data surfaces. In this case, when switching for access is performed from the head 1a to the head 1b, servo number "10" of the servo area SA may not coincide with count value "11".